local tiles = require("main/TS_DATA").tiles --这里改成你自己的地皮数据文件


--注册地皮范围，主要防止不同mod之间地皮id冲突，填了之后你的地皮id会在你指定的区间分配
--[[
    range_name：string，表示你选定范围的名称
    range_start：number，你选定范围区间的起始值
    range_end：number，你选定范围区间的结束值
    备注：
        1.区间内至少要有256个id，即range_end-range_start必须>= 256
        2.避开原版ID范围，原版使用了的id是1-247，其实原版的范围是0-255，所以更建议从256开始
        3.65535是INVALID地皮，不能使用该id
        4.建议不要超过几千，避免内存浪费
]]
RegisterTileRange('TSQT_TILES',1000,1256)



for _,tile in pairs(tiles) do
    AddTile(tile.name,tile.range,tile.data,tile.ground_tile_def,tile.minimap_tile_def,tile.turf_def)
    if tile.needchangeorder and tile.changeorderdata then
        ChangeTileRenderOrder(tile.changeorderdata.tile_id,tile.changeorderdata.target_tile_id,tile.changeorderdata.moveafter)
    end
    if tile.needchangeminimaporder and tile.changeminimaporderdata then
        ChangeTileMinimapOrder(tile.changeminimaporderdata.tile_id,tile.changeminimaporderdata.target_tile_id,tile.changeminimaporderdata.moveafter)
    end
  
end




--[[
还有几个api有需求也可以用，一个是添加渐变纹理的，还有一个是添加地面覆盖物的。
1.添加地皮边缘渐变纹理
AddFalloffTexture（falloff_id, falloff_def）
    falloff_id (number)：要添加的边缘渐变纹理ID -- 必需，无默认值,官方提供了四个选项参考，渲染顺序从上往下，越下面越靠前显示，你要做的就是写一个这四个之外的id，然后进行相关配置，这里放出来给你们了解下：
        {
            FALLOFF = 1,处理普通陆地地皮之间的渐变过渡，草地→森林、沙漠→岩石地等陆地地皮间的平滑过渡，特点是当前地皮是陆地且需要渐变时生效，但邻居也是陆地时不额外渐变
            DOCK_FALLOFF = 2,处理码头与海洋之间的渐变，官方是用于猴岛码头与海洋的过渡，表现上看码头边缘向海洋方向的渐变效果，营造码头入水的视觉效果
            OCEANICE_FALLOFF = 3,处理海洋冰面与普通海洋的渐变，官方的例子是大霜鲨的岛，视觉上是冰面边缘融化效果，让冰面看起来自然地漂浮在海面上
            INVISIBLE = 4,处理隐形地皮与可见地皮的渐变，猜测应该是洞穴桥梁地皮与正常地皮的渐变过度
        }
    falloff_def (table)：边缘渐变纹理定义 - 必需，无默认值，具体内容如下：
        {
            name = "falloff"    --string，必需，纹理名称
            noise_texture = "images/square.tex", --string，必需，噪声纹理路径
            atlas = "images/square.xml",         -- string，可选，默认使用name


            --以下四个条件要结合在一起用，属于多参数设计
            should_have_falloff = TileGroups.LandTilesWithDefaultFalloff,  
            should_have_falloff_result = true,   
            neighbor_needs_falloff = TileGroups.LandTilesWithDefaultFalloff,  
            neighbor_needs_falloff_result = false, 

            其中，should_have_falloff和neighbor_needs_falloff分别代表当前是否属于特定的地皮组，should_have_falloff_result和neighbor_needs_falloff_result在属于期望的结果。
            should_have_falloff的两个属性决定是否需要渐变，neighbor_needs_falloff的两个属性决定是否触发渐变

            以上面为例，即当前地皮属于陆地组的时候，地皮需要渐变，但是相邻地皮属于陆地组时，不需要渐变，所以最终结果就是当陆地组的两个地皮相邻时，没有渐变
            再看另一个例子：
                should_have_falloff = TileGroups.DockTiles,                  -- 码头组
                should_have_falloff_result = true,                           -- 码头地皮 → 需要渐变
                neighbor_needs_falloff = TileGroups.TransparentOceanTiles,   -- 透明海洋组
                neighbor_needs_falloff_result = true                         -- 海洋邻居 → 触发渐变
            这四个属性最终就决定了当前地皮属于码头组且周围是透明海洋组的地皮时，会有渐变
            这样多参数控制是为了避免过于复杂的逻辑判断，精确决定哪些地皮之间产生渐变

            由此衍生了两个新的api
            TileGroups.Legacy_LandTiles = TileGroupManager:AddTileGroup()  --创建新的地皮组，Legacy_LandTiles就是你地皮组的名字，后续调用的时候就写TileGroups.Legacy_LandTiles
            TileGroupManager:SetValidTileRange(TileGroups.Legacy_LandTiles, LEGACY_WORLD_TILES_LAND_START, LEGACY_WORLD_TILES_LAND_END)  --设置该地皮组能添加的地皮id的范围，只有范围内的地皮才能被成功添加
            TileGroupManager:AddInvalidTile(TileGroups.Legacy_LandTiles, WORLD_TILES.MONKEY_DOCK)  --将指定地皮加入到相应的地皮组中
        }
改变地皮边缘渐变纹理的渲染顺序
ChangeFalloffRenderOrder(falloff_id, target_falloff_id, moveafter)
    falloff_id (number)：要移动的渐变ID - 必需，无默认值
    target_falloff_id (number)：目标渐变ID - 必需，无默认值
    moveafter (boolean)：是否移动到目标之后 - 必需，无默认值


2.添加地面覆盖物，官方的目前就只有蜘蛛网是地面覆盖物，其他的暂时没发现
AddGroundCreep（groundcreep_id, groundcreep_def）
    groundcreep_id (number)：要添加的地面覆盖物ID - 必需，无默认值，官方只有一个，GROUND_CREEP_IDS.WEBCREEP，蜘蛛网，实际内容是1
    groundcreep_def (table)：地面覆盖物定义 - 必需，无默认值，具体内容如下：
        {
            name = "纹理名称",           -- string，必需
            noise_texture = "噪声纹理",  -- string，必需
            atlas = "图集路径"           -- string，可选，默认使用name
        }

改变覆盖物渲染顺序
ChangeGroundCreepRenderOrder(groundcreep_id, target_groundcreep_id, moveafter)
    groundcreep_id (number)：要移动的地面覆盖物ID - 必需，无默认值
    target_groundcreep_id (number)：目标覆盖物ID - 必需，无默认值
    moveafter (boolean)：是否移动到目标之后 - 必需，无默认值
]]


